-
Notifications
You must be signed in to change notification settings - Fork 1.5k
BUG 2075459: IOPS was not being set even when manually configured #5925
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUG 2075459: IOPS was not being set even when manually configured #5925
Conversation
|
@barbacbd: This pull request references Bugzilla bug 2075459, which is valid. The bug has been moved to the POST state. The bug has been updated to refer to the pull request using the external bug tracker. 3 validation(s) were run on this bug
No GitHub users were found matching the public email listed for the QA contact in Bugzilla (gpei@redhat.com), skipping review request. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
The following link can be used to see where the static values came from. |
d56ac6a to
8a4a211
Compare
8a4a211 to
a923d77
Compare
| @@ -52,6 +50,40 @@ func ValidateMachinePool(platform *aws.Platform, p *aws.MachinePool, fldPath *fi | |||
| return allErrs | |||
| } | |||
|
|
|||
| func validateVolumeSize(p *aws.MachinePool, fldPath *field.Path) field.ErrorList { | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: this function is so small/simple that it could maybe be integrated into the caller if.
|
/lgtm |
a923d77 to
0e507d1
Compare
|
/lgtm |
patrickdillon
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pkg/types/aws/machinepool.go
Outdated
| @@ -78,8 +78,7 @@ func (a *MachinePool) Set(required *MachinePool) { | |||
|
|
|||
| // EC2RootVolume defines the storage for an ec2 instance. | |||
| type EC2RootVolume struct { | |||
| // IOPS defines the amount of provisioned IOPS. This is only valid | |||
| // for type io1. | |||
| // IOPS defines the amount of provisioned IOPS. (KiB/s) | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| // IOPS defines the amount of provisioned IOPS. (KiB/s) | |
| // IOPS defines the amount of provisioned IOPS. (KiB/s). IOPS may only be set for io1, io2, & gp3 volume types. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@barbacbd I'm available to work on this - what docs need revising?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://docs.openshift.com/container-platform/4.10/storage/dynamic-provisioning.html
This is the first instance of the issue (not sure if there are more). In the section "AWS Elastic Block Store (EBS) object definition".
In #2 GP3 is a missing value.
In #3 It says that iops is only allowed for io1. It is allowed for gp3 and io2. It is required for io1 and io2 to be a value greater than 0.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
https://docs.openshift.com/container-platform/4.10/storage/dynamic-provisioning.html This is the first instance of the issue (not sure if there are more). In the section "AWS Elastic Block Store (EBS) object definition".
In #2 GP3 is a missing value. In #3 It says that iops is only allowed for io1. It is allowed for gp3 and io2. It is required for io1 and io2 to be a value greater than 0.
@lpettyjo Brent has identified some docs inconsistencies in the storage area. Could you take a look? unsure if we should have a separate BZ created or how it should be handled. Thank you
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@barbacbd I'd like to get this comment updated, because I don't think there's anywhere in the codebase that documents this behavior.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(And after the comment is updated the explain code will need to be regenerated.)
| case "gp3": | ||
| // Terraform will accept any value |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: even if Terraform accepts negative numbers, they don't make sense so we could enforce it here. It would be different than the io1, io2 case because 0 could potentially be valid...
** Removed the terraform parameter that was constantly set to 0 unless this was an io1 instance. ** Left the bootstrap terraform value remain as it isn't causing any issues, but we should be aware if we want to change the boostrap aws instance to anything other than gp3 then we will change that too. ** Added static value tests for the volume type, volume size and iops for AWS. aws: Static type checks fixed ** Adjusted the static type checks after reviewing the terraform pages. gp3 does not require any value for the iops, default will be set to 3000 io1 and io2 require a value (cannot be <0) sc1, st1, and gp2 require no value to be set (must be 0 iops) aws: remove used test data ** Reverting/Removing unused test data for the types/machines aws: Altered comments for machine ** Comments that are used to generate the docs were changed and the new comments and generated docs are added. aws: Fix error formatting ** Fixed capitalization and formatting in AWS types errors. ** Formatting Error messages. aws: IOPS change to GP3 volume types ** Updated comments/explain regenerated ** Added check for >= 0 IOPS for GP3, even though terraform will accept any value, we can go ahead and check it.
0e507d1 to
d4a48a2
Compare
|
/lgtm |
|
/approve |
|
/retest |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: patrickdillon The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@barbacbd: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
@barbacbd: All pull requests linked via external trackers have merged: Bugzilla bug 2075459 has been moved to the MODIFIED state. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
openshift/installer#5925 introduces checks which disallow our previous default of a gp2 volumeType with 100 IOPS as it was an incorrect configuration. From the linked change, IOPS may now only be set for io1, io2, & gp3 volume types.
aws: IOPS was not being set even when manually configured
** Removed the terraform parameter that was constantly set to 0 unless this
was an io1 instance.
** Left the bootstrap terraform value remain as it isn't causing any issues, but
we should be aware if we want to change the boostrap aws instance to anything
other than gp3 then we will change that too.
** Added static value tests for the volume type, volume size and iops
for AWS.